TSTP Solution File: PUZ141^1 by cvc5---1.0.5

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : cvc5---1.0.5
% Problem  : PUZ141^1 : TPTP v8.1.2. Released v6.2.0.
% Transfm  : none
% Format   : tptp
% Command  : do_cvc5 %s %d

% Computer : n002.cluster.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory   : 8042.1875MB
% OS       : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit  : 300s
% DateTime : Thu Aug 31 13:13:34 EDT 2023

% Result   : Theorem 0.21s 0.54s
% Output   : Proof 0.21s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.13/0.13  % Problem    : PUZ141^1 : TPTP v8.1.2. Released v6.2.0.
% 0.13/0.14  % Command    : do_cvc5 %s %d
% 0.15/0.35  % Computer : n002.cluster.edu
% 0.15/0.35  % Model    : x86_64 x86_64
% 0.15/0.35  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.15/0.35  % Memory   : 8042.1875MB
% 0.15/0.35  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.15/0.35  % CPULimit   : 300
% 0.15/0.35  % WCLimit    : 300
% 0.15/0.35  % DateTime   : Sat Aug 26 23:11:18 EDT 2023
% 0.15/0.35  % CPUTime    : 
% 0.21/0.49  %----Proving TH0
% 0.21/0.50  %------------------------------------------------------------------------------
% 0.21/0.50  % File     : PUZ141^1 : TPTP v8.1.2. Released v6.2.0.
% 0.21/0.50  % Domain   : Puzzles
% 0.21/0.50  % Problem  : Labyrinth1
% 0.21/0.50  % Version  : Especial.
% 0.21/0.50  % English  : Move 2 to the right.
% 0.21/0.50  
% 0.21/0.50  % Refs     : [Cam14] Camarero (2014), Email to Geoff Sutcliffe
% 0.21/0.50  % Source   : [Cam14]
% 0.21/0.50  % Names    : labyrinth1 [Cam14]
% 0.21/0.50  
% 0.21/0.50  % Status   : Theorem
% 0.21/0.50  % Rating   : 0.08 v8.1.0, 0.09 v7.5.0, 0.14 v7.4.0, 0.33 v7.2.0, 0.25 v7.1.0, 0.38 v7.0.0, 0.29 v6.4.0, 0.33 v6.3.0, 0.80 v6.2.0
% 0.21/0.50  % Syntax   : Number of formulae    :   27 (  10 unt;  15 typ;   2 def)
% 0.21/0.50  %            Number of atoms       :   22 (  14 equ;   0 cnn)
% 0.21/0.50  %            Maximal formula atoms :    3 (   1 avg)
% 0.21/0.50  %            Number of connectives :   46 (   1   ~;   0   |;   0   &;  41   @)
% 0.21/0.50  %                                         (   0 <=>;   4  =>;   0  <=;   0 <~>)
% 0.21/0.50  %            Maximal formula depth :   10 (   3 avg)
% 0.21/0.50  %            Number of types       :    4 (   3 usr)
% 0.21/0.50  %            Number of type conns  :    6 (   6   >;   0   *;   0   +;   0  <<)
% 0.21/0.50  %            Number of symbols     :   14 (  12 usr;   9 con; 0-2 aty)
% 0.21/0.50  %            Number of variables   :   12 (   0   ^;  11   !;   1   ?;  12   :)
% 0.21/0.50  % SPC      : TH0_THM_EQU_NAR
% 0.21/0.50  
% 0.21/0.50  % Comments :
% 0.21/0.50  %------------------------------------------------------------------------------
% 0.21/0.50  thf(position_type,type,
% 0.21/0.50      position: $tType ).
% 0.21/0.50  
% 0.21/0.50  thf(direction_type,type,
% 0.21/0.50      direction: $tType ).
% 0.21/0.50  
% 0.21/0.50  thf(left_type,type,
% 0.21/0.50      left: direction ).
% 0.21/0.50  
% 0.21/0.50  thf(right_type,type,
% 0.21/0.50      right: direction ).
% 0.21/0.50  
% 0.21/0.50  thf(top_type,type,
% 0.21/0.50      top: direction ).
% 0.21/0.50  
% 0.21/0.50  thf(bottom_type,type,
% 0.21/0.50      bottom: direction ).
% 0.21/0.50  
% 0.21/0.50  thf(next_type,type,
% 0.21/0.50      next: position > direction > position ).
% 0.21/0.50  
% 0.21/0.50  thf(next_comm,axiom,
% 0.21/0.50      ! [D1: direction,D2: direction,P: position] :
% 0.21/0.50        ( ( next @ ( next @ P @ D1 ) @ D2 )
% 0.21/0.50        = ( next @ ( next @ P @ D2 ) @ D1 ) ) ).
% 0.21/0.50  
% 0.21/0.50  thf(left_right,axiom,
% 0.21/0.50      ! [P: position] :
% 0.21/0.50        ( ( next @ ( next @ P @ left ) @ right )
% 0.21/0.50        = P ) ).
% 0.21/0.50  
% 0.21/0.50  thf(top_bottom,axiom,
% 0.21/0.50      ! [P: position] :
% 0.21/0.50        ( ( next @ ( next @ P @ top ) @ bottom )
% 0.21/0.50        = P ) ).
% 0.21/0.50  
% 0.21/0.50  thf(wall_type,type,
% 0.21/0.50      wall: position > $o ).
% 0.21/0.50  
% 0.21/0.50  %----Inductive MoveList. For the moment we do not include the inductive axioms.
% 0.21/0.50  thf(movelist_type,type,
% 0.21/0.50      movelist: $tType ).
% 0.21/0.50  
% 0.21/0.50  thf(nomove_type,type,
% 0.21/0.50      nomove: movelist ).
% 0.21/0.50  
% 0.21/0.50  thf(movedir_type,type,
% 0.21/0.50      movedir: movelist > direction > movelist ).
% 0.21/0.50  
% 0.21/0.50  %----The position of the player after a list of movements
% 0.21/0.50  thf(playerpos_type,type,
% 0.21/0.50      playerpos: movelist > position ).
% 0.21/0.50  
% 0.21/0.50  thf(player_move_legal,axiom,
% 0.21/0.50      ! [PO: position,M: movelist,D: direction] :
% 0.21/0.50        ( ( ( playerpos @ M )
% 0.21/0.50          = PO )
% 0.21/0.50       => ( ~ ( wall @ ( next @ PO @ D ) )
% 0.21/0.50         => ( ( playerpos @ ( movedir @ M @ D ) )
% 0.21/0.50            = ( next @ PO @ D ) ) ) ) ).
% 0.21/0.50  
% 0.21/0.50  thf(player_move_illegal,axiom,
% 0.21/0.50      ! [PO: position,M: movelist,D: direction] :
% 0.21/0.50        ( ( ( playerpos @ M )
% 0.21/0.50          = PO )
% 0.21/0.50       => ( ( wall @ ( next @ PO @ D ) )
% 0.21/0.50         => ( ( playerpos @ ( movedir @ M @ D ) )
% 0.21/0.50            = PO ) ) ) ).
% 0.21/0.50  
% 0.21/0.50  thf(c00_type,type,
% 0.21/0.50      c00: position ).
% 0.21/0.50  
% 0.21/0.50  thf(c10_type,type,
% 0.21/0.50      c10: position ).
% 0.21/0.50  
% 0.21/0.50  thf(c20_type,type,
% 0.21/0.50      c20: position ).
% 0.21/0.50  
% 0.21/0.50  thf(c10_defin,definition,
% 0.21/0.50      ( c10
% 0.21/0.50      = ( next @ c00 @ right ) ) ).
% 0.21/0.50  
% 0.21/0.50  thf(c20_defin,definition,
% 0.21/0.50      ( c20
% 0.21/0.50      = ( next @ c10 @ right ) ) ).
% 0.21/0.50  
% 0.21/0.50  %----Exercise 1. Move 2 to the right
% 0.21/0.50  thf(c00_axiom,axiom,
% 0.21/0.50      ( ( wall @ c00 )
% 0.21/0.50      = $false ) ).
% 0.21/0.50  
% 0.21/0.50  thf(c10_axiom,axiom,
% 0.21/0.50      ( ( wall @ c10 )
% 0.21/0.50      = $false ) ).
% 0.21/0.50  
% 0.21/0.50  thf(c20_axiom,axiom,
% 0.21/0.50      ( ( wall @ c20 )
% 0.21/0.50      = $false ) ).
% 0.21/0.50  
% 0.21/0.50  thf(start_axiom,axiom,
% 0.21/0.50      ( ( playerpos @ nomove )
% 0.21/0.50      = c00 ) ).
% 0.21/0.50  
% 0.21/0.50  thf(exercise,conjecture,
% 0.21/0.50      ? [M: movelist] :
% 0.21/0.50        ( ( playerpos @ M )
% 0.21/0.50        = c20 ) ).
% 0.21/0.50  
% 0.21/0.50  %------------------------------------------------------------------------------
% 0.21/0.50  ------- convert to smt2 : /export/starexec/sandbox2/tmp/tmp.V3tCJxy9iu/cvc5---1.0.5_8398.p...
% 0.21/0.50  (declare-sort $$unsorted 0)
% 0.21/0.50  (declare-sort tptp.position 0)
% 0.21/0.50  (declare-sort tptp.direction 0)
% 0.21/0.50  (declare-fun tptp.left () tptp.direction)
% 0.21/0.50  (declare-fun tptp.right () tptp.direction)
% 0.21/0.50  (declare-fun tptp.top () tptp.direction)
% 0.21/0.50  (declare-fun tptp.bottom () tptp.direction)
% 0.21/0.50  (declare-fun tptp.next (tptp.position tptp.direction) tptp.position)
% 0.21/0.50  (assert (forall ((D1 tptp.direction) (D2 tptp.direction) (P tptp.position)) (let ((_let_1 (@ tptp.next P))) (= (@ (@ tptp.next (@ _let_1 D1)) D2) (@ (@ tptp.next (@ _let_1 D2)) D1)))))
% 0.21/0.54  (assert (forall ((P tptp.position)) (= (@ (@ tptp.next (@ (@ tptp.next P) tptp.left)) tptp.right) P)))
% 0.21/0.54  (assert (forall ((P tptp.position)) (= (@ (@ tptp.next (@ (@ tptp.next P) tptp.top)) tptp.bottom) P)))
% 0.21/0.54  (declare-fun tptp.wall (tptp.position) Bool)
% 0.21/0.54  (declare-sort tptp.movelist 0)
% 0.21/0.54  (declare-fun tptp.nomove () tptp.movelist)
% 0.21/0.54  (declare-fun tptp.movedir (tptp.movelist tptp.direction) tptp.movelist)
% 0.21/0.54  (declare-fun tptp.playerpos (tptp.movelist) tptp.position)
% 0.21/0.54  (assert (forall ((PO tptp.position) (M tptp.movelist) (D tptp.direction)) (let ((_let_1 (@ (@ tptp.next PO) D))) (=> (= (@ tptp.playerpos M) PO) (=> (not (@ tptp.wall _let_1)) (= (@ tptp.playerpos (@ (@ tptp.movedir M) D)) _let_1))))))
% 0.21/0.54  (assert (forall ((PO tptp.position) (M tptp.movelist) (D tptp.direction)) (=> (= (@ tptp.playerpos M) PO) (=> (@ tptp.wall (@ (@ tptp.next PO) D)) (= (@ tptp.playerpos (@ (@ tptp.movedir M) D)) PO)))))
% 0.21/0.54  (declare-fun tptp.c00 () tptp.position)
% 0.21/0.54  (declare-fun tptp.c10 () tptp.position)
% 0.21/0.54  (declare-fun tptp.c20 () tptp.position)
% 0.21/0.54  (assert (= tptp.c10 (@ (@ tptp.next tptp.c00) tptp.right)))
% 0.21/0.54  (assert (= tptp.c20 (@ (@ tptp.next tptp.c10) tptp.right)))
% 0.21/0.54  (assert (= (@ tptp.wall tptp.c00) false))
% 0.21/0.54  (assert (= (@ tptp.wall tptp.c10) false))
% 0.21/0.54  (assert (= (@ tptp.wall tptp.c20) false))
% 0.21/0.54  (assert (= (@ tptp.playerpos tptp.nomove) tptp.c00))
% 0.21/0.54  (assert (not (exists ((M tptp.movelist)) (= (@ tptp.playerpos M) tptp.c20))))
% 0.21/0.54  (set-info :filename cvc5---1.0.5_8398)
% 0.21/0.54  (check-sat-assuming ( true ))
% 0.21/0.54  ------- get file name : TPTP file name is PUZ141^1
% 0.21/0.54  ------- cvc5-thf : /export/starexec/sandbox2/solver/bin/cvc5---1.0.5_8398.smt2...
% 0.21/0.54  --- Run --ho-elim --full-saturate-quant at 10...
% 0.21/0.54  % SZS status Theorem for PUZ141^1
% 0.21/0.54  % SZS output start Proof for PUZ141^1
% 0.21/0.54  (
% 0.21/0.54  (let ((_let_1 (not (exists ((M tptp.movelist)) (= (@ tptp.playerpos M) tptp.c20))))) (let ((_let_2 (@ tptp.playerpos tptp.nomove))) (let ((_let_3 (= _let_2 tptp.c00))) (let ((_let_4 (@ tptp.wall tptp.c20))) (let ((_let_5 (= _let_4 false))) (let ((_let_6 (@ tptp.wall tptp.c10))) (let ((_let_7 (= _let_6 false))) (let ((_let_8 (= tptp.c20 (@ (@ tptp.next tptp.c10) tptp.right)))) (let ((_let_9 (= tptp.c10 (@ (@ tptp.next tptp.c00) tptp.right)))) (let ((_let_10 (forall ((PO tptp.position) (M tptp.movelist) (D tptp.direction)) (let ((_let_1 (@ (@ tptp.next PO) D))) (=> (= (@ tptp.playerpos M) PO) (=> (not (@ tptp.wall _let_1)) (= (@ tptp.playerpos (@ (@ tptp.movedir M) D)) _let_1))))))) (let ((_let_11 (forall ((M tptp.movelist)) (not (= (ho_4 (ho_3 k_2 (ho_4 (ho_3 k_2 (ho_6 k_5 tptp.nomove)) tptp.right)) tptp.right) (ho_6 k_5 M)))))) (let ((_let_12 (ho_9 (ho_8 k_7 tptp.nomove) tptp.right))) (let ((_let_13 (ho_9 (ho_8 k_7 _let_12) tptp.right))) (let ((_let_14 (ho_6 k_5 _let_13))) (let ((_let_15 (ho_4 (ho_3 k_2 (ho_6 k_5 tptp.nomove)) tptp.right))) (let ((_let_16 (ho_4 (ho_3 k_2 _let_15) tptp.right))) (let ((_let_17 (= _let_16 _let_14))) (let ((_let_18 (ASSUME :args (_let_9)))) (let ((_let_19 (AND_INTRO (SYMM (ASSUME :args (_let_3))) (EQ_RESOLVE (ASSUME :args (_let_8)) (MACRO_SR_EQ_INTRO _let_18 :args (_let_8 SB_DEFAULT SBA_FIXPOINT))) _let_18))) (let ((_let_20 (EQ_RESOLVE (ASSUME :args (_let_1)) (TRANS (MACRO_SR_EQ_INTRO :args (_let_1 SB_DEFAULT SBA_FIXPOINT)) (MACRO_SR_EQ_INTRO _let_19 :args ((forall ((M tptp.movelist)) (not (= tptp.c20 (@ tptp.playerpos M)))) SB_DEFAULT SBA_FIXPOINT)) (PREPROCESS :args ((= (forall ((M tptp.movelist)) (not (= (@ tptp.playerpos M) (@ (@ tptp.next (@ (@ tptp.next (@ tptp.playerpos tptp.nomove)) tptp.right)) tptp.right)))) _let_11))))))) (let ((_let_21 (ho_6 k_5 _let_12))) (let ((_let_22 (ho_4 (ho_3 k_2 _let_21) tptp.right))) (let ((_let_23 (= _let_22 _let_14))) (let ((_let_24 (= _let_15 _let_21))) (let ((_let_25 (ho_11 k_10 _let_22))) (let ((_let_26 (or _let_25 _let_23))) (let ((_let_27 (forall ((M tptp.movelist) (D tptp.direction)) (let ((_let_1 (ho_4 (ho_3 k_2 (ho_6 k_5 M)) D))) (or (ho_11 k_10 _let_1) (= _let_1 (ho_6 k_5 (ho_9 (ho_8 k_7 M) D)))))))) (let ((_let_28 (EQ_RESOLVE (ASSUME :args (_let_10)) (TRANS (MACRO_SR_EQ_INTRO :args (_let_10 SB_DEFAULT SBA_FIXPOINT)) (PREPROCESS :args ((= (forall ((M tptp.movelist) (D tptp.direction)) (let ((_let_1 (@ (@ tptp.next (@ tptp.playerpos M)) D))) (or (@ tptp.wall _let_1) (= (@ tptp.playerpos (@ (@ tptp.movedir M) D)) _let_1)))) _let_27))))))) (let ((_let_29 (_let_27))) (let ((_let_30 ((ho_4 (ho_3 k_2 (ho_6 k_5 M)) D)))) (let ((_let_31 (ho_11 k_10 _let_16))) (let ((_let_32 (not _let_25))) (let ((_let_33 (ho_11 k_10 _let_15))) (let ((_let_34 (or _let_33 _let_24))) (let ((_let_35 (@ (@ tptp.next _let_2) tptp.right))) (let ((_let_36 (MACRO_RESOLUTION_TRUST (REORDERING (CNF_OR_POS :args (_let_34)) :args ((or _let_33 _let_24 (not _let_34)))) (EQ_RESOLVE (ASSUME :args (_let_7)) (TRANS (MACRO_SR_EQ_INTRO :args (_let_7 SB_DEFAULT SBA_FIXPOINT)) (MACRO_SR_EQ_INTRO _let_19 :args ((not _let_6) SB_DEFAULT SBA_FIXPOINT)) (PREPROCESS :args ((= (not (@ tptp.wall _let_35)) (not _let_33)))))) (MACRO_RESOLUTION_TRUST (IMPLIES_ELIM (SCOPE (INSTANTIATE _let_28 :args (tptp.nomove tptp.right QUANTIFIERS_INST_E_MATCHING _let_30)) :args _let_29)) _let_28 :args (_let_34 false _let_27)) :args (_let_24 true _let_33 false _let_34)))) (let ((_let_37 (not _let_31))) (let ((_let_38 (EQ_RESOLVE (ASSUME :args (_let_5)) (TRANS (MACRO_SR_EQ_INTRO :args (_let_5 SB_DEFAULT SBA_FIXPOINT)) (MACRO_SR_EQ_INTRO _let_19 :args ((not _let_4) SB_DEFAULT SBA_FIXPOINT)) (PREPROCESS :args ((= (not (@ tptp.wall (@ (@ tptp.next _let_35) tptp.right))) _let_37))))))) (let ((_let_39 (and _let_37 _let_24))) (let ((_let_40 (_let_37 _let_24))) (let ((_let_41 (APPLY_UF ho_4))) (let ((_let_42 (REFL :args (tptp.right)))) (let ((_let_43 (APPLY_UF ho_3))) (let ((_let_44 (ASSUME :args (_let_24)))) (let ((_let_45 (SYMM (SYMM _let_44)))) (let ((_let_46 (REFL :args (k_2)))) (let ((_let_47 (and _let_24 _let_23))) (let ((_let_48 (ASSUME :args (_let_23)))) (SCOPE (SCOPE (MACRO_RESOLUTION_TRUST (IMPLIES_ELIM (SCOPE (INSTANTIATE _let_20 :args (_let_13 QUANTIFIERS_INST_CBQI_CONFLICT)) :args (_let_11))) (MACRO_RESOLUTION_TRUST (RESOLUTION (CNF_AND_NEG :args (_let_47)) (IMPLIES_ELIM (SCOPE (MODUS_PONENS (AND_INTRO _let_48 _let_44) (SCOPE (TRANS (CONG (CONG _let_46 _let_45 :args _let_43) _let_42 :args _let_41) (SYMM (SYMM _let_48))) :args (_let_23 _let_24))) :args (_let_24 _let_23))) :args (true _let_47)) _let_36 (MACRO_RESOLUTION_TRUST (REORDERING (CNF_OR_POS :args (_let_26)) :args ((or _let_25 _let_23 (not _let_26)))) (MACRO_RESOLUTION_TRUST (EQ_RESOLVE (RESOLUTION (CNF_AND_NEG :args (_let_39)) (IMPLIES_ELIM (SCOPE (MODUS_PONENS (AND_INTRO _let_38 _let_44) (SCOPE (FALSE_ELIM (TRANS (CONG (REFL :args (k_10)) (CONG (CONG _let_46 (SYMM _let_45) :args _let_43) _let_42 :args _let_41) :args (APPLY_UF ho_11)) (FALSE_INTRO _let_38))) :args _let_40)) :args _let_40)) :args (true _let_39)) (CONG (MACRO_SR_PRED_INTRO :args ((= (not _let_37) _let_31))) (REFL :args ((not _let_24))) (REFL :args (_let_32)) :args (or))) _let_38 _let_36 :args (_let_32 true _let_31 false _let_24)) (MACRO_RESOLUTION_TRUST (IMPLIES_ELIM (SCOPE (INSTANTIATE _let_28 :args (_let_12 tptp.right QUANTIFIERS_INST_E_MATCHING _let_30)) :args _let_29)) _let_28 :args (_let_26 false _let_27)) :args (_let_23 true _let_25 false _let_26)) :args (_let_17 false _let_24 false _let_23)) _let_20 :args (false false _let_17 false _let_11)) :args ((forall ((D1 tptp.direction) (D2 tptp.direction) (P tptp.position)) (let ((_let_1 (@ tptp.next P))) (= (@ (@ tptp.next (@ _let_1 D1)) D2) (@ (@ tptp.next (@ _let_1 D2)) D1)))) (forall ((P tptp.position)) (= (@ (@ tptp.next (@ (@ tptp.next P) tptp.left)) tptp.right) P)) (forall ((P tptp.position)) (= (@ (@ tptp.next (@ (@ tptp.next P) tptp.top)) tptp.bottom) P)) _let_10 (forall ((PO tptp.position) (M tptp.movelist) (D tptp.direction)) (=> (= (@ tptp.playerpos M) PO) (=> (@ tptp.wall (@ (@ tptp.next PO) D)) (= (@ tptp.playerpos (@ (@ tptp.movedir M) D)) PO)))) _let_9 _let_8 (= (@ tptp.wall tptp.c00) false) _let_7 _let_5 _let_3 _let_1 true)))))))))))))))))))))))))))))))))))))))))))))))))))
% 0.21/0.54  )
% 0.21/0.54  % SZS output end Proof for PUZ141^1
% 0.21/0.54  % cvc5---1.0.5 exiting
% 0.21/0.54  % cvc5---1.0.5 exiting
%------------------------------------------------------------------------------